package com.demo.persistencia.generica.controller;

import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;

import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Restrictions;

import com.demo.persistencia.generica.dao.GenericDao;
import com.demo.persistencia.generica.modelo.Usuario;
import com.demo.persistencia.generica.util.Busqueda;
import com.demo.persistencia.generica.util.HibernateUtil;

@ViewScoped
@ManagedBean(name = "loginMB")
public class LoginMB {
	
	private String dni;
	private String password;
	private Session session =null;
	private Transaction tx=null;
	private HibernateUtil hUtil;
	
	public LoginMB() {
		super();
		this.hUtil=new HibernateUtil();
		this.hUtil.IniciarContextoSpring();
	}

	public void actionListenerIniciarSesion(ActionEvent event) throws Exception {
		try {
			hUtil.openSession();
	        GenericDao<Usuario, Integer> usuarioDAO = (GenericDao<Usuario, Integer>) HibernateUtil.getContextoSpring().getBean("usuarioDao");
		  
		    Busqueda filtro = Busqueda.forClass(Usuario.class);
		    filtro.add(Restrictions.eq("numeroDni", this.dni));
		    filtro.add(Restrictions.eq("password", this.password));
			List<Usuario> listaUsuario = (List<Usuario>) usuarioDAO.buscarDinamico(filtro);
			System.out.println("grrrrrrrrrrrrrrr : " +listaUsuario.size());
			//FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("usuario", listaUsuario.get(0));
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
	    finally {
	    	hUtil.closeSession();
	    }
	}

	public String getDni() {
		return dni;
	}

	public void setDni(String dni) {
		this.dni = dni;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}
	
}
